#ifndef WORDLIST_H
#define WORDLIST_H

#include <map>
#include <string>
#include <vector>

#define WORDSCOUNT 31
#define WordtoTokenMap std::map <std::string, WordList::WordToken>
#define WordtoValueMap std::map <std::string, int>
#define RomanToValueMap std::map<int, std::string>

namespace WordList
{
	enum WordToken
	{
		ZERO, ONE, TWO, THREE, FOUR, FIVE, SIX, SEVEN, EIGHT, NINE,
		TEN, ELEVEN, TWELVE, THIRTEEN, FOURTEEN, FIFTEEN, SIXTEEN, SEVENTEEN, EIGHTEEN, NINETEEN,
		TWENTY, THIRTY, FOURTY, FIFTY, SIXTY, SEVENTY, EIGHTY, NINETY,
		HUNDRED, THOUSAND, INVALID, END
	};

	std::vector <std::string> generateWordList();
	WordtoTokenMap generateWordTokenMap();
	WordtoValueMap generateWordValueMap();
	RomanToValueMap generateRomanValueMap();
}

#endif
